#include<bits/stdc++.h>
using namespace std;
const int N=3e6+5,mod=998244353;
int n,m,q,k,fac[N],ifac[N],res;
inline int pw(int x,int y){
	int ans=1;
	for(;y;y>>=1,x=1ll*x*x%mod) if(y&1) ans=1ll*ans*x%mod;
	return ans;
}
inline int C(int n,int m){return 1ll*fac[n]*ifac[m]%mod*ifac[n-m]%mod;}
inline void Mod(int &x){x>=mod?x-=mod:0;}
int main(){
	freopen("sequence.in","r",stdin);
	freopen("sequence.out","w",stdout);
	cin>>n>>m>>q>>k;
	for(int i=fac[0]=1;i<=m;++i) fac[i]=1ll*fac[i-1]*i%mod;
	ifac[m]=pw(fac[m],mod-2);
	for(int i=m-1;~i;--i) ifac[i]=1ll*ifac[i+1]*(i+1)%mod;
	for(int i=0;i<=m;++i){
		int val=1ll*C(m,i)*pw(1ll*(n-i)*k%mod,q)%mod;
		if(i&1) Mod(res+=mod-val);
		else Mod(res+=val);
	}
	res=1ll*res*pw(pw(k,m),mod-2)%mod;
	cout<<1ll*res*(n-m+1)%mod;
	return 0;
}


